package com.itheima03;

/**
 * @author Xiao
 * @date 2021/7/10
 */
public class JumppingDemo {
    public static void main(String[] args) {
        Jumpping cat = new Cat("胖虎",2);
        Animal dog = new Dog("旺财",3);
        cat.jump();     //接口引用实现类对象，调用接口中的抽象方法，可以直接调用
        dog.eat();      ////父类引用子类对象，调用父类中的抽象方法，可以直接调用
        ((Cat) cat).eat();      //接口引用实现类对象，调用实现类中的具体方法（接口中没有对应的抽象方法时）要强转
        ((Dog) dog).jump();     //父类引用子类对象，调用子类中的具体方法（父类中没有对应的抽象方法时）要强转
        System.out.println("----------");
        //直接创建子类/实现类对象（左边为子类/实现类引用，右边为子类/实现类对象），
        // 既可以直接调用接口中的抽象方法，又可以调用父类中的抽象方法，因为这些方法在子类中已经重写过
        //推荐使用直接创建子类对象调用方法。
        Cat c = new Cat();
        c.eat();
        c.jump();
    }

}
